#Boa:Frame:FUModificar2

import wx
import psycopg2
import sys
import pprint
import time

def create(parent):
    return FUModificar2(parent)

[wxID_FUMODIFICAR2, wxID_FUMODIFICAR2BINGRESAR, wxID_FUMODIFICAR2BMENU, 
 wxID_FUMODIFICAR2CHECKLISTBOX1, wxID_FUMODIFICAR2PANEL1, 
 wxID_FUMODIFICAR2ROL, wxID_FUMODIFICAR2STATICTEXT1, 
 wxID_FUMODIFICAR2STATICTEXT2, wxID_FUMODIFICAR2STATICTEXT3, 
 wxID_FUMODIFICAR2STATICTEXT4, wxID_FUMODIFICAR2TEXTCODIGO, 
 wxID_FUMODIFICAR2TEXTNOMBRE, 
] = [wx.NewId() for _init_ctrls in range(12)]

codigo = ''
def update_usuario(nomb,ape,cod,cur):
    conn_string = "host='localhost' port='5432' dbname='DB778' user='postgres' password='123456789'"
    conn = psycopg2.connect(conn_string)
    cursor = conn.cursor()
    cursor.execute("""DELETE FROM curso_catedratico WHERE
          codigo_catedratico=%s""",(cod))
    conn.commit()
    cursor.execute("""UPDATE catedratico SET
          nombre = %s, id_tipo = %s WHERE codigo_catedratico = %s""", (nomb,ape+1,cod))
    conn.commit()
    for c in cur:
	    otra=c.split(',')
	    cursor.execute("""INSERT INTO curso_catedratico(
                    codigo_catedratico,codigo_curso,anio,semestre)
        VALUES (%s, %s, %s, %s)""", (cod,otra[0],time.strftime("%Y"),time.strftime("%m")))
            conn.commit()
    cursor.close()
    conn.close()
    
class FUModificar2(wx.Frame):
    cc=''
    nn=''
    aa=''
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_FUMODIFICAR2, name=u'FUModificar2',
              parent=prnt, pos=wx.Point(506, 167), size=wx.Size(588, 427),
              style=wx.DEFAULT_FRAME_STYLE, title=u'Modificar Usuario')
        self.SetClientSize(wx.Size(588, 427))

        self.panel1 = wx.Panel(id=wxID_FUMODIFICAR2PANEL1, name='panel1',
              parent=self, pos=wx.Point(0, 0), size=wx.Size(588, 427),
              style=wx.TAB_TRAVERSAL)

        self.staticText1 = wx.StaticText(id=wxID_FUMODIFICAR2STATICTEXT1,
              label=u'Nombre', name='staticText1', parent=self.panel1,
              pos=wx.Point(24, 54), size=wx.Size(66, 18), style=0)
        self.staticText1.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, u'Sans'))

        self.textNombre = wx.TextCtrl(id=wxID_FUMODIFICAR2TEXTNOMBRE,
              name=u'textNombre', parent=self.panel1, pos=wx.Point(105, 50),
              size=wx.Size(463, 30), style=0, value=nn)
        self.textNombre.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.NORMAL,
              False, u'Sans'))

        self.staticText2 = wx.StaticText(id=wxID_FUMODIFICAR2STATICTEXT2,
              label=u'Tipo', name='staticText2', parent=self.panel1,
              pos=wx.Point(100, 110), size=wx.Size(69, 18), style=0)
        self.staticText2.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, u'Sans'))

        self.staticText3 = wx.StaticText(id=wxID_FUMODIFICAR2STATICTEXT3,
              label=u'Codigo', name='staticText3', parent=self.panel1,
              pos=wx.Point(24, 20), size=wx.Size(59, 18), style=0)
        self.staticText3.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, u'Sans'))

        self.textCodigo = wx.TextCtrl(id=wxID_FUMODIFICAR2TEXTCODIGO,
              name=u'textCodigo', parent=self.panel1, pos=wx.Point(105, 15),
              size=wx.Size(463, 30), style=wx.TE_READONLY, value=cc)
        self.textCodigo.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.NORMAL,
              False, u'Sans'))

        self.bingresar = wx.Button(id=wxID_FUMODIFICAR2BINGRESAR,
              label=u'Modificar', name=u'bingresar', parent=self.panel1,
              pos=wx.Point(150, 375), size=wx.Size(105, 40), style=0)
        self.bingresar.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              u'Sans'))
        self.bingresar.Bind(wx.EVT_BUTTON, self.OnBingresarButton,
              id=wxID_FUMODIFICAR2BINGRESAR)

        self.bmenu = wx.Button(id=wxID_FUMODIFICAR2BMENU, label=u'Atras',
              name=u'bmenu', parent=self.panel1, pos=wx.Point(27, 375),
              size=wx.Size(105, 40), style=0)
        self.bmenu.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              u'Sans'))
        self.bmenu.Bind(wx.EVT_BUTTON, self.OnBmenuButton,
              id=wxID_FUMODIFICAR2BMENU)

        self.checkListBox1 = wx.CheckListBox(choices=['795,Logica de Sistemas',
              '770,Intr. a la Programacion y Computacion 1',
              '796,Lenguajes Formales y de Prog.',
              '962,Intr. a la Prog. y Computacion 2',
              '777,Org. Lenguajes y Compiladores 1',
              '964,Organizacion Computacional', '772,Estructura de Datos',
              '722,Teoria de Sistemas', '014,Economia',
              '781,Org. Lenguajes y Compiladores 2',
              '778,Arq. Compu y Ensambladores 1',
              '773,Manejo e implementacion de Archivos',
              '724,Teoria de Sistemas 2', '281,Sistemas Operativos 1',
              '779,Arq. Compu y Ensambladores 1', '970,Redes de Computadoras 1',
              '774,Sistemas de Bases de Datos 1', '2036,Practica Intermedia',
              '2025,Practica Inicial', '285,Sistemas Operativos 2',
              '975,Redes de Computadoras 2', '775,Sistemas de Bases de Datos 2',
              '283,Analisis y diseno de Sistemas 1',
              '797,Seminario de Sistemas 1', '729,Modelacion y Simulacion 1',
              '786,Sistemas Org. y gerenciales 1',
              '790,Emprendedores de Neg. Informaticos',
              '972,Inteligencia Artificial 1',
              '966,Seguridad y Auditoria de redes',
              '785,Analisis y diseno de Sistemas 2', '788,Sistemas Aplicados 1',
              '738,Bases de Datos Avanzadas', '798,Seminario de Sistemas 2',
              '799,Seminario de Investigacion', '2037,Practica Final',
              '787,Sistemas Org. y gerenciales 2',
              '720,Modelacion y Simulacion 2', '968,Inteligencia Artificial 2',
              '974,Redes de Nueva generacion', '780,Software Avanzado',
              '789,Sistemas Aplicados 2', '735,Auditoria de Proy. de Software'],
              id=wxID_FUMODIFICAR2CHECKLISTBOX1, name='checkListBox1',
              parent=self.panel1, pos=wx.Point(264, 128), size=wx.Size(320,
              288), style=0)
        self.checkListBox1.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, u'Sans'))

        self.staticText4 = wx.StaticText(id=wxID_FUMODIFICAR2STATICTEXT4,
              label=u'Cursos', name='staticText4', parent=self.panel1,
              pos=wx.Point(375, 96), size=wx.Size(68, 20), style=0)
        self.staticText4.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, u'Sans'))

        self.rol = wx.RadioBox(choices=['Administrador', 'Usuario'],
              id=wxID_FUMODIFICAR2ROL, label=u'Rol', majorDimension=1,
              name=u'rol', parent=self.panel1, pos=wx.Point(32, 128),
              size=wx.Size(184, 88), style=wx.RA_SPECIFY_COLS)
        self.rol.SetFont(wx.Font(13, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              u'Sans'))

    def __init__(self, parent,cod,nombre,apellido):
      global codigo  
      global cc
      global nn
      global aa
      codigo = cod
      cc=cod
      nn=nombre
      aa=apellido
      print cod
      print nombre
      print apellido
      #self.textCodigo.SetValue(codigo)
      #self.textNombre.SetValue(nombre)
      #self.rol.SetSelection(apellido-1)
      self._init_ctrls(parent)
      

    def OnBingresarButton(self,event):
      cursos=self.checkListBox1.GetCheckedStrings()
      update_usuario(self.textNombre.GetValue (), self.rol.GetSelection(), self.textCodigo.GetValue (),cursos)
      dlg = wx.MessageDialog(self, 'Datos actualizados','',wx.OK | wx.ICON_INFORMATION)
      dlg.ShowModal()
      dlg.Destroy()
        
      self.Close(True)
      event.Skip()

    def OnBmenuButton(self, event):
        self.Close(True)
        event.Skip()
